//
//  NSDate+Extension.m
//  SinaWeiBo
//
//  Created by WGP on 16/4/27.
//  Copyright © 2016年 WGP. All rights reserved.
//

#import "NSDate+Extension.h"

@implementation NSDate (Extension)

+(NSDate *)dateWith:(NSString *)string
{
   NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"EEE MMM dd HH:mm:ss zzz yyyy";
    
//    真机需要指定
    fmt.locale =[[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
    
    NSDate *date = [fmt dateFromString:string];
//    NSLog(@"%@",date);
    return date;
}

/*
 根据时间的需求返回不同的字符串,和当前时间比较
 返回日其描述的字符串
    
 格式如下:
 --刚刚()
 --X分钟前(一小时内)
 --X小时前(当天)
 --昨天 HH:mm(昨天)
 --MM-dd HH:mm(一年内)
 -- yyyy-MM-dd HH:mm(更早期)
 */

-(NSString *)sinaDateDescription
{
//    日历,专门用来处理时间的
   NSCalendar *calendar = [NSCalendar currentCalendar];
    
    if ([calendar isDateInToday:self]) {
        
//        获得行浪时间和当前时间相差的秒数
        int second = [[[NSDate alloc] init] timeIntervalSinceDate:self];
        
        if (second < 60)
        {
            return @"刚刚";
        }
        if (second < 60*60)
        {
            
            NSString *result = [NSString stringWithFormat:@"%zd分钟前",second/60];
            return result;
        }
        
        return [NSString stringWithFormat:@"%zd小时前",second/3600];
    }
    
//    后面3中需要时间格式化
    NSString *dateFormatter = @"";
    
    if ([calendar isDateInYesterday:self]) {
        
        dateFormatter = @"昨天 HH:mm";
    }
    else if([calendar compareDate:self toDate:[[NSDate alloc] init] toUnitGranularity:NSCalendarUnitYear] == NSOrderedSame)
    {
        dateFormatter = @"MM-dd HH:mm";
    }
    else
    {
        dateFormatter = @"yyyy-MM-dd HH:mm";
    }
    
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    
    fmt.dateFormat = dateFormatter;
    fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"EN"];
    
    NSString *dateStr = [fmt stringFromDate:self];
//    NSLog(@"%@",dateStr);
    return dateStr;
}

@end











